Eigener Muster-Dialog
Im folgenden erklären wir Ihnen, wie Sie Ihren eigenen Muster-Dialog erstellen können. Sie müssen hierfür zwei Namenskonventionen beachten und dann können Sie loslegen.
Im folgenden legen wir einen eigenen Dialog Schritt für Schritt an. Dieser Dialog soll den folgenden Quellcode erzeugen:
*** Tabellendefinition für: “Interne Beispieltabelle”
DATA t_itab LIKE tabelle OCCURS 0 WITH HEADER LINE.
Der Name der internen Tabelle, die Referenz und die kurze Dokumentation soll natürlich durch ein Popup erfragt werden.
1. Schritt: Anlegen des Musters
Wechseln Sie in den Editor und wählen Sie über das Menü: “Hilfsmittel – Weitere Hilfsmittel – Muster bearbeiten – Muster anlegen“. Im Popup geben Sie den Namen “Z_ITAB” ein.
Sie gelangen so in den Muster-Editor. Geben Sie hier einfach den folgenden Text ein und sichern Sie das Muster:
*$&$MUSTER
Dieses Literal ist das Zeichen für SAP einen Funktionsbaustein aufzurufen.
2. Schritt: Der Funktionsbaustein
Der Name des Funktionsbausteins ergibt sich aus dem Namen des Musters: “Z_ITAB” und dem Text “_EDITOR_EXIT“. Es wird also in unserem Fall der Funktionsbaustein “Z_ITAB_EDITOR_EXIT” aufgerufen. Den müssen wir nun anlegen. Wechseln Sie hierfür in die Transaktion SE37, legen eine Funktionsgruppe an, z. B. “Z_MUSTER’, und kopieren Sie den Baustein “SUBMIT_EDITOR_EXIT” auf “Z_ITAB_EDITOR_EXIT”. Durch das Kopieren hat der Funktionsbaustein die richtigen Parameter.
3. Schritt: Programmierung des Dialogs
Löschen Sie aus dem kopierten Funktionsbaustein den vorhandenen Quelltext. und fügen Sie folgenden Quellcode ein:
FUNCTION z_itab_editor_exit.
*”———————————————————————-
*”*”Lokale Schnittstelle:
*” TABLES
*” BUFFER STRUCTURE ABAPSOURCE
*” EXCEPTIONS
*” CANCELLED
*”———————————————————————-
*– Variablen
DATA:
l_rcode,
l_itab(30),
l_tabl(30),
l_text(200),
l_buffer(200),
l_leng TYPE i,
t_val LIKE sval OCCURS 0 WITH HEADER LINE.
*– Abfragefeld “Name der internen Tabelle”
CLEAR t_val.
t_val-tabname = ‘DD03L’.
t_val-fieldname = ‘REFTABLE’.
t_val-value = ‘T_ITAB’.
t_val-field_attr = space.
t_val-field_obl = ‘X’.
t_val-comp_code = space.
t_val-fieldtext = ‘Interne Tabelle’.
t_val-comp_tab = ‘DD02L’.
t_val-comp_field = ‘TABNAME’.
t_val-novaluehlp = space.
APPEND t_val.
*– Abfragefeld “Bezugstabelle aus dem Dictionary”
CLEAR t_val.
t_val-tabname = ‘DD03L’.
t_val-fieldname = ‘TABNAME’.
t_val-value = ‘?’.
t_val-field_attr = space.
t_val-field_obl = ‘X’.
t_val-comp_code = space.
t_val-fieldtext = ‘Dictionary-Bezug’.
t_val-comp_tab = ‘DD02L’.
t_val-comp_field = ‘TABNAME’.
t_val-novaluehlp = space.
APPEND t_val.
*– Abfragefeld “Beschreibung der internen Tabelle”
CLEAR t_val.
t_val-tabname = ‘DD03T’.
t_val-fieldname = ‘DDTEXT’.
t_val-value = ‘<Beschreibung>’.
t_val-field_attr = space.
t_val-field_obl = ‘X’.
t_val-comp_code = space.
t_val-fieldtext = ‘Beschreibung’.
t_val-comp_tab = ”.
t_val-comp_field = ”.
t_val-novaluehlp = space.
APPEND t_val.
*– Popup zur Abfrage der Werte aufrufen
CALL FUNCTION ‘POPUP_GET_VALUES’
EXPORTING
no_value_check = ‘X’
popup_title = ‘Muster Dialog’
start_column = ‘5’
start_row = ‘5’
IMPORTING
returncode = l_rcode
TABLES
fields = t_val
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF l_rcode = ‘A’.
RAISE cancelled.
ELSE.
*– Namen der Internen Tabelle lesen
READ TABLE t_val INDEX 1.
TRANSLATE t_val-value TO UPPER CASE.
l_itab = t_val-value.
*– Namen des Dictionary-Bezugs lesen
READ TABLE t_val INDEX 2.
TRANSLATE t_val-value TO UPPER CASE.
l_tabl = t_val-value.
*– Beschreibung der Internen Tabelle lesen
READ TABLE t_val INDEX 3.
TRANSLATE t_val-value TO UPPER CASE.
l_text = t_val-value.
*– Zusammenbau
CONCATENATE ‘* Info: “‘ l_text ‘”‘
INTO buffer SEPARATED BY space.
APPEND buffer.
CONCATENATE ‘ DATA’ l_itab ‘LIKE’ l_tabl
INTO buffer SEPARATED BY space.
l_leng = strlen( buffer ).
IF l_leng > 40.
APPEND buffer.
APPEND ‘ OCCURS 0 WITH HEADER LINE.’
TO buffer.
ELSE.
CONCATENATE buffer ‘OCCURS 0 WITH HEADER LINE.’
INTO buffer SEPARATED BY space.
APPEND buffer.
ENDIF.
CLEAR buffer.
APPEND buffer.
ENDIF.
ENDFUNCTION.
4. Schritt: Muster testen
Wenn Sie alles richtig gemacht haben, erhalten Sie nach Auswahl “Z_ITAB” unter “Sonstige Muster” im Muster-Dialog Ihren eigenen Dialog.
|
|
|
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024